package com.xhl.common.algorithm;

import lombok.Data;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

/**
 * 数组比较大小，flag = 1 是 升序 flag = 0 是 降序
 * @Author CazCen
 * @Date 2021/12/5 18:14
 */
@Data
public class ArraysSort {

    /**
     * flag = 1 是 升序 flag = 0 是 降序
     */
    public static Integer flag = 1;

    /**
     * 降序排序
     * 定义比较器 Comparator
     */

    static class MyComparator implements Comparator<Integer> {

        @Override
        public int compare(Integer o1, Integer o2) {
            if(o1.intValue() > o2.intValue()){
                return -1;
            }else if(o1.intValue() < o2.intValue()){
                return 1;
            }
            return 0;
        }
    }

    public static void sortIntegerArrays(Integer[] arr, Integer flag){
        if(flag == 1){
            Arrays.sort(arr);
        }else {
            Arrays.sort(arr, new MyComparator());
        }
        for(int i=0; i < arr.length; i++){
            System.out.print(arr[i]+" ");
        }
    }

    /**
     * 通过测试用例测试
     */
    public static void test(Integer[] arr, Integer flag){
        sortIntegerArrays(arr,flag);
    }

    /**
     * 通过Scanner测试
     */
    public static void test(){
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            //第一个是数组的长度
            Integer length = scanner.nextInt();
            // 初始化数组
            Integer[] arr = new Integer[8];
            for(int i=0; i < length; i++){
                // 第二个是数组的内容
                arr[i] = scanner.nextInt();
            }
            //第三个是flag
            Integer flag = scanner.nextInt();
            // 执行排序
            sortIntegerArrays(arr,flag);
        }
        scanner.close();
    }

}
